package cn.shiwei.pay.domain;

import cn.shiwei.basic.domain.BaseDomain;
import com.alipay.easysdk.kernel.Config;
import lombok.Data;

import java.security.PrivateKey;

@Data
public class PayAlipayInfo extends BaseDomain {
    /**
     * 商铺id
     */
    private Long shop_id;
    /**
     * 商铺name
     */
    private String shopName;
    /**
     * 支付宝开发平台的一个应用凭证
     */
    private String appid;
    /**
     * 生成的私钥
     */
    private String merchant_private_key;
    /**
     * 生成的支付宝公钥
     */
    private String alipay_public_key;
    /**
     * 协议https
     */
    private String protocol;
    /**
     * 支付网关
     */
    private String gatewayHost;
    /**
     * 签名方式RSA2
     */
    private String signType;
    /**
     * 异步回调地址
     */
    private String notifyUrl;
    /**
     * 同回调地址
     */
    private String returnUrl;

    /**
     * @author https://opendocs.alipay.com/open/54/00y8k9
     * @return
     */
    public Config getOptions() {
        Config config = new Config();
        // 协议
        config.protocol = this.protocol;
        // 网关
        config.gatewayHost = this.gatewayHost;
        // 签名方式
        config.signType = this.signType;
        config.appId = this.appid;
        // 为避免私钥随源码泄露，推荐从文件中读取私钥字符串而不是写入源码中
        config.merchantPrivateKey = this.merchant_private_key;
        //注：如果采用非证书模式，则无需赋值上面的三个证书路径，改为赋值如下的支付宝公钥字符串即可
        config.alipayPublicKey = this.alipay_public_key;

        //可设置异步通知接收服务地址（可选）
        config.notifyUrl = this.notifyUrl;
        return config;
    }
}
